
[dbo].[sp_asi_MakeImisUser]
create procedure [dbo].[sp_asi_MakeImisUser] @userid varchar(255), @userpassword varchar(255), @sapassword varchar(255)=NULL
as
declare @execSQL nvarchar(1000)
declare @loginid varbinary (85)
select @loginid = sid from master..syslogins where loginname = @userid
if exists (select u.isaliased from sysusers u where u.isaliased = 1 and u.sid = @loginid and @loginid is not NULL)
begin
exec sp_password NULL, @userpassword, @userid
return
end
if @loginid is not null
begin
exec sp_password NULL, @userpassword, @userid
end
else begin
exec sp_addlogin @userid, @userpassword
select @loginid = sid from master..syslogins where loginname = @userid
end
if not exists (select d.sid from sysusers d where d.sid = @loginid )
begin
if lower(@userid)='guest'
begin
if not exists (select d.sid from sysusers d where d.name = lower(@userid) and d.sid < 0)
exec sp_adduser @userid, @userid
SELECT @execSQL = 'sp_addrolemember ''IMIS'', [' + @userid + ']'
EXEC (@execSQL)
end
else
exec sp_adduser @userid, @userid, 'IMIS'
end
else begin
declare @oldusername varchar(255)
select @oldusername = u.name from sysusers u where u.sid = @loginid
if @oldusername <> @userid
begin
exec sp_dropuser @oldusername
exec sp_adduser @userid, @userid, 'IMIS'
end
end
return
GO
GRANT EXECUTE ON [dbo].[sp_asi_MakeImisUser] TO [IMIS]
GO